﻿Module TestObservateur

    Private lstJoueurs As New List(Of JoueurConcret)

    Sub Main()


        Dim nombreJoueur As Integer = 5

        AjouterJoueurs(nombreJoueur)
        AjouterNotifications()

        ' Tous les joueurs jouent une carte
        For i As Integer = 0 To lstJoueurs.Count - 1
            lstJoueurs(i).JouerCarte(i.ToString)
        Next

        For Each Joueur As JoueurConcret In lstJoueurs
            Joueur.AfficherVosin()
        Next
        Console.Read()
    End Sub

    Private Sub AjouterJoueurs(nombreJoueur As Integer)

        For i As Integer = 0 To nombreJoueur - 1
            lstJoueurs.Add(New JoueurConcret(String.Format("Joueur_{0}", i)))
        Next
    End Sub

    Private Sub AjouterNotifications()
        For i As Integer = 0 To lstJoueurs.Count - 1
            If i = 0 Then
                lstJoueurs(i).AjouterObservateur(lstJoueurs(lstJoueurs.Count - 1))
                lstJoueurs(i).AjouterObservateur(lstJoueurs(1))
            ElseIf i = lstJoueurs.Count - 1 Then
                lstJoueurs(i).AjouterObservateur(lstJoueurs(lstJoueurs.Count - 2))
                lstJoueurs(i).AjouterObservateur(lstJoueurs(0))
            Else
                lstJoueurs(i).AjouterObservateur(lstJoueurs(i - 1))
                lstJoueurs(i).AjouterObservateur(lstJoueurs(i + 1))
            End If
        Next
    End Sub
End Module
